# (1)
# 题目描述：
# 通过OpenCV读取一张图片，完成下面的操作
#
# (2)
# 题目要求：.
# ①　导入相关头文件
import numpy as np
import cv2 as cv

# ②　读入一张图片并转为灰度图
gray = cv.imread('data/chair01.jpg', cv.IMREAD_GRAYSCALE)

# ③　自定义卷积核
kernel = np.float32([
    [0, 1, 0],
    [1, -4, 1],
    [0, 1, 0]
])

# ④　完成图像的滤波
sharpen = cv.filter2D(gray, cv.CV_32F, kernel)
cv.normalize(sharpen, sharpen, 0, 255, cv.NORM_MINMAX)
sharpen = sharpen.astype(np.uint8)

# show
img_all = np.concatenate((gray, sharpen), axis=1)
cv.imshow('res', img_all)

# ⑤　创建sift对象
# ⑥　完成sift特征点检测
# ⑦　绘制sift检测出来的特征点
# ⑧　生成特征描述子
# ⑨　完成特征描述子的匹配
# ⑩　绘制两张图匹配到的特征点
# 11　将两张图进行变换
# 12　完成图像的拼接
# 13　加入必要的注释

cv.waitKey(0)
cv.destroyAllWindows()
